-- @Author: 作者QQ381990860
-- @Date:   2021-11-05 10:34:34
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-07-23 06:58:53

local 场景类_自由技能栏 = class(窗口逻辑)
local bw = require("gge包围盒")(0,0,164,39)
local floor = math.floor
local insert = table.insert
local mouseb = 引擎.鼠标弹起
local box = 引擎.画矩形
local tp,zts,zts1
local ads1 = {"可用经验","可用银两","存    款"}
local ads2 =  {"升级所需经验","升级所需银两"," 储  备  金"}
function 场景类_自由技能栏:初始化(根)
	self.ID = 32
	self.x = 238+(全局游戏宽度-800)/2
	self.y = 83
	self.xx = 0
	self.yy = 0
	self.注释 = "自由技能栏"
	self.可视 = false
	self.鼠标 = false
	self.焦点 = false
	self.可移动 = true
	local 资源 = 根.资源
	local 按钮 = 根._按钮
	local 自适应 = 根._自适应
	tp = 根
	self.资源组 = {
		[1] = 自适应.创建(0,1,383,477,3,9),--背景
		[2] = 按钮.创建(自适应.创建(18,4,16,16,4,3),0,0,4,true,true),
		[3] = 按钮.创建(自适应.创建(31,4,10,13,4,3),0,0,4,true,true), --上
		[4] = 按钮.创建(自适应.创建(32,4,10,13,4,3),0,0,4,true,true),--下
		[5] = 按钮.创建(自适应.创建(31,4,10,13,4,3),0,0,4,true,true), --上
		[6] = 按钮.创建(自适应.创建(32,4,10,13,4,3),0,0,4,true,true),--下
		[7] = 按钮.创建(自适应.创建(11,4,43,20,1,3),0,0,4,true,true,"学习"),
		[8] = 按钮.创建(自适应.创建(11,4,72,20,1,3),0,0,4,true,true,"学习10次"),
		[10] = 自适应.创建(4,1,170,315,3,nil),
		[11] = 自适应.创建(8,1,170,152,3,9),
		[12] = 自适应.创建(7,1,170,152,3,9),
		[13] = 自适应.创建(3,1,100,18,1,3),
	}
	for n=2,8 do
		self.资源组[n]:绑定窗口_(32)
	end
	self.介绍文本 = 根._丰富文本(150,150,根.字体表.普通字体)
	self.窗口时间 = 0
	self.刷新文本 = false
	self.学习格子 = {}
	self.选中 = 0
	self.加入 = 0
	self.上限 = 0

	zts = tp.字体表.普通字体
	zts1 = tp.字体表.描边字体
end

function 场景类_自由技能栏:打开(数据)
	if self.可视 then
		self.介绍文本:清空()
		self.刷新文本 = false
		self.可视 = false
		self.本次需求 = nil
		self.数据 ={}
		 self.加入=0
		 self.长度=0
	else
	if  self.x > 全局游戏宽度 then
		self.x = 238+(全局游戏宽度-800)/2
    end
		self.数据=数据
		if self.数据.类别 == "强化技能" then
			for i=1,#self.数据 do
				local nx= SkillData[self.数据[i].名称]   
				self.数据[i].介绍=nx.介绍
			 	self.学习格子[i] = tp.资源:载入(nx.文件,"网易WDF动画",nx.小图标)
			 end
			 self.长度=7
		elseif self.数据.类别=="辅助技能" then
			for i=1,6 do
				local nx= SkillData[self.数据[i].名称]
				self.数据[i].介绍=nx.介绍
			 	self.学习格子[i] = tp.资源:载入(nx.文件,"网易WDF动画",nx.小图标)
			 end
			 self.长度=6
		elseif self.数据.类别=="生活技能" then
			for i=1,12 do
				local nx= SkillData[self.数据[i].名称]
				self.数据[i].介绍=nx.介绍
			 	self.学习格子[i] = tp.资源:载入(nx.文件,"网易WDF动画",nx.小图标)
			 end
			  self.加入=6
			  self.长度=6
		end
		self.上限 = 180
		insert(tp.窗口_,self)
		tp.运行时间 = tp.运行时间 + 1
	  	self.窗口时间 = tp.运行时间
		self.可视 = true
	end
end
function 场景类_自由技能栏:刷新(数据)
	self.数据 ={}
		self.数据=数据
		if self.数据.类别 == "强化技能" then
			for i=1,#self.数据 do
				local nx= SkillData[self.数据[i].名称]
				self.数据[i].介绍=nx.介绍
			 	self.学习格子[i] = tp.资源:载入(nx.文件,"网易WDF动画",nx.小图标)
			 end
			 self.长度=7
		elseif self.数据.类别=="辅助技能" then
			for i=1,6 do
				local nx= SkillData[self.数据[i].名称]
				self.数据[i].介绍=nx.介绍
			 	self.学习格子[i] = tp.资源:载入(nx.文件,"网易WDF动画",nx.小图标)
			 end
			 self.长度=6
		elseif self.数据.类别=="生活技能" then
			for i=1,12 do
				local nx= SkillData[self.数据[i].名称]
				self.数据[i].介绍=nx.介绍
			 	self.学习格子[i] = tp.资源:载入(nx.文件,"网易WDF动画",nx.小图标)
			 end
			 self.加入=6
			 self.长度=6
		end
		self.上限 = 180
		self.本次需求 =计算技能数据(self.数据[self.选中].等级+1)
end

function 场景类_自由技能栏:显示(dt,x,y)
	self.资源组[2]:更新(x,y)
	self.资源组[3]:更新(x,y,false)
	self.资源组[4]:更新(x,y,false)
	self.资源组[5]:更新(x,y,false)
	self.资源组[6]:更新(x,y,false)
	self.资源组[7]:更新(x,y,self.选中 ~= 0)
	self.资源组[8]:更新(x,y,self.选中 ~= 0)

	local xx = 0
	local yy = 0
	if self.资源组[2]:事件判断() then
		self:打开()
		return false
	elseif self.资源组[7]:事件判断() then
		if self.数据.类别 == "强化技能" then
          客户端:发送数据(self.选中,1,10,1)
      elseif self.数据.类别 == "辅助技能" then
          客户端:发送数据(self.选中,2,10,1)
        elseif self.数据.类别 == "生活技能" then
          客户端:发送数据(self.选中,2,10,1)
      end
    elseif self.资源组[8]:事件判断() then
		if self.数据.类别 == "强化技能" then
          客户端:发送数据(self.选中,3,10,1)
      elseif self.数据.类别 == "辅助技能" then
          客户端:发送数据(self.选中,4,10,1)
        elseif self.数据.类别 == "生活技能" then
          客户端:发送数据(self.选中,4,10,1)
      end
	end

	self.焦点 = false
	self.资源组[1]:显示(self.x,self.y)
  self.资源组[2]:显示(self.x+self.资源组[1].宽度-20,self.y+3)
  tp.窗口标题背景_:显示(self.x+self.资源组[1].宽度/2-73,self.y)
  zts1:显示(self.x+self.资源组[1].宽度/2-30,self.y+1,self.数据.类别)

	self.资源组[10]:显示(self.x + 15,self.y + 36)
	self.资源组[11]:显示(self.x + 195,self.y + 36)
	self.资源组[12]:显示(self.x + 195,self.y + 199)

	self.资源组[3]:显示(self.x + 354,self.y + 59)
	self.资源组[4]:显示(self.x + 354,self.y + 174)
	self.资源组[5]:显示(self.x + 354,self.y + 199)
	self.资源组[6]:显示(self.x + 354,self.y + 338)
	self.资源组[7]:显示(self.x + 124,self.y + 445,true)
	self.资源组[8]:显示(self.x + 224,self.y + 445,true)



	zts:置颜色(0xFFFFFFFF)

	zts:显示(self.x+35,self.y+42,"技能名称       等级")
	zts:显示(self.x+250,self.y+41,"相关法术")

		for i=0,2 do
			self.资源组[13]:显示(self.x+70,self.y+360+i*23)
			zts:显示(self.x+10,self.y+362+i*23,ads1[i+1])
			self.资源组[13]:显示(self.x+268,self.y+360+i*23)
			zts:显示(self.x+180,self.y+362+i*23,ads2[i+1])
		end

		for i=1,self.长度 do
			xx = self.x + 18
			yy = self.y + i * 40
			bw:置坐标(xx,yy + 30)
			if self.选中 ~= i + self.加入 then
				if bw:检查点(x,y) then
					box(xx-2,yy+25,xx+166,yy+39+25,-3551379)
					if self.鼠标 and mouseb(0) then
						self.选中 = i + self.加入
						self.介绍文本:清空()
						self.介绍文本:添加文本("#N/【介绍】"..self.数据[self.选中].介绍)
						self.介绍文本:添加文本("#N/【等级】"..self.数据[self.选中].等级)
						self.介绍文本:添加文本("#N/【所需帮派贡献】"..self:学习技能(self.数据[self.选中].等级))
						self.本次需求 =计算技能数据(self.数据[self.选中].等级+1)
					end
					self.焦点 = true
				end
			else
				local ys = -10790181
				if bw:检查点(x,y) then
					ys = -9670988
					self.焦点 = true
				end
				box(xx-2,yy+25,xx+166,yy+39+25,ys)
			end

			self.学习格子[i+self.加入]:显示(self.x + 18,yy + 24)
			zts:置颜色(0xFF000000)
			zts:显示(xx + 42,yy + 37,self.数据[i+self.加入].名称)
			zts:显示(xx + 112,yy + 37 ,self.数据[i+self.加入].等级.."/"..self.上限)
		end

	if self.选中 ~= 0 then
		zts:置颜色(0xFF000000)
		zts:显示(self.x + 75,self.y + 362,self.数据.经验)
		zts:显示(self.x + 75,self.y + 385,self.数据.银两)
		zts:显示(self.x + 75,self.y + 407,self.数据.存银)
		if self.本次需求 ~= nil then
			zts:显示(self.x + 275,self.y + 362,self.本次需求.经验)
			zts:显示(self.x + 275,self.y + 385,self.本次需求.金钱)
		else
				zts:显示(self.x + 275,self.y + 362,"--------")
				zts:显示(self.x + 275,self.y + 385,"--------")
		end
		zts:显示(self.x + 275,self.y + 407,self.数据.储备)
	end
	self.介绍文本:显示(self.x+200,self.y+205)
end


function 场景类_自由技能栏:学习技能(等级)
	if 等级< 100 then
		return 0
	else
	return floor(0.7*等级)
	end
end

return 场景类_自由技能栏